// token  令牌

// token是服务器生成的一串代码，发送给客户端
// 由客户端进行保存，然后每次发送请求的时候，将token携带给
// 请求的头部，在后端，每次收到服务端的请求时，先验证token的有效性
// 如果有效的话，就请求数据，否则token失效，提示登录


// 使用Token的目的：
// 1.Token的目的是为了减轻服务器的压力，
// 2.减少频繁的查询数据库，
// 3.使服务器更加健壮
// 4.提高服务器的安全等级 
// 5.保护数据安全性 

var jwt = require('jsonwebtoken') ;
var keys = "nszdp" ;

exports.getToken = function (data){
    return jwt.sign(data,keys,{expiresIn:'3h'});
} 

// 解析token出现的情况
// 1.token不存在
// 2.token 失效（即token被人为修改或者过期）
// 3.token 有效  解密成功！

exports.checkToken = function(req,res,callback){
    var token = req.headers.token ; //获取请求头携带的token
    if(token){
        jwt.verify(token,keys,(err,data)=>{
            if(err){
                res.json({
                    code:3000,
                    msg:'token已经失效，请登录',
                    err
                });
            } else {
                callback(data);
            }
        });
    } else {
        res.json({
            code:3000,
            msg:'token不存在，请登录',
            data:null,
        });
    }
}